import { defineConfig } from "vite";
import vue from "@vitejs/plugin-vue";
import path from "path";
import px2vw from "postcss-px-to-viewport";

const { isPC } = process.env;

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [vue()],
  base: "./",
  define: {
    __isPC__: isPC
  },
  resolve: {
    alias: {
      "@": path.resolve(__dirname, "src"),
    },
  },
  css: {
    preprocessorOptions: {
      less: {
        additionalData: `@import "@/style/index.less";`,
      },
    },
    postcss: {
      plugins: isPC
        ? []
        : [
            px2vw({
              unitToConvert: "px", // 要转化的单位
              viewportWidth: 375, // UI设计稿的宽度
              unitPrecision: 6, // 转换后的精度，即小数点位数
              propList: ["*"], // 指定转换的css属性的单位，*代表全部css属性的单位都进行转换
              viewportUnit: "vw", // 指定需要转换成的视窗单位，默认vw
              fontViewportUnit: "vw", // 指定字体需要转换成的视窗单位，默认vw
              selectorBlackList: ["ignore-"], // 指定不转换为视窗单位的类名，
              minPixelValue: 1, // 默认值1，小于或等于1px则不进行转换
              mediaQuery: false, // 是否在媒体查询的css代码中也进行转换，默认false
              replace: true, // 是否转换后直接更换属性值
              include: [/form-info-card/, /mobile-page/, /shareMb/, /editMb/], //如果设置了include，那将只有匹配到的文件才会被转换
              landscape: false, // 是否处理横屏情况
            }),
          ],
    },
  },
  server: {
    port: 9527,
  },
});
